
#ifndef __PTHREAD_LOCK_H__
#define __PTHREAD_LOCK_H__

//===============================================头文件声明======================================================//
#include "SWM341.h"

//=================================================宏定义========================================================//
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus

//#define pthread_mutex_lock(mutex_ptr) 			(((mutex_ptr)->lock) ? (false) : (((mutex_ptr)->lock) != ((mutex_ptr)->lock)))
//#define pthread_mutex_unlock(mutex_ptr) 		((mutex_ptr)->lock = false)

//================================================类型声明=======================================================//
typedef struct
{
	bool lock;		//True-锁已占用		False-锁空闲
} pthread_mutex_t;	//互斥锁

//==============================================内联函数定义=====================================================//
/**
 * @brief 	加锁
 * @param 	pthread_mutex_t *ptr-互斥锁
 * @retval	true-获取锁成功	 false-锁已被占用
 * @note	/
 */
static inline bool pthread_mutex_lock(pthread_mutex_t *ptr)
{
	if (ptr->lock)
		return false;
	ptr->lock = true;
	return ptr->lock;
}

/**
 * @brief 	解锁
 * @param 	pthread_mutex_t *ptr-互斥锁
 * @retval	/
 * @note	/
 */
static inline void pthread_mutex_unlock(pthread_mutex_t *ptr)
{
	ptr->lock = false;
}

#ifdef __cplusplus
}
#endif //__cplusplus

#endif //__PTHREAD_LOCK_H__
